#include "widget.h"

#include <QApplication>

#include"MySvgWidget.h"
#include<QDebug>
#include<QIcon>
#include<QIconEngine>
#include"RenderWidget.h"
#include<QPushButton>
#include"USvgIconEngineSimple.h"
//#include"A.h"
#include"test.h"
#include<QSvgRenderer>
#include<QLineEdit>
#include<QDir>
#include <QCryptographicHash>
#include"IconFileTools.h"
#include"ScaleWiget.h"
#include"NormalWidget.h"

#include<QScreen>
#include<QGuiApplication>
#include <QIconEnginePlugin>
#include<QPluginLoader>
#include<QPushButton>
#include"TestCase.h"
#include<QHash>

int main(int argc, char *argv[])
{
//    qputenv("QT_SCALE_FACTOR", "2"); // 强制缩放 200%
//    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);//启用高DPI支持，开启这个

    QApplication a(argc, argv);





//    /**
//     * QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);启用高DPI支持
//     * screen->devicePixelRatio()才能够真正获取 硬件屏幕的缩放比（设备像素比）
//     */
//    QScreen *screen = QGuiApplication::primaryScreen();
//    qDebug() << "main DPR = " << screen->devicePixelRatio();


//    // 读取环境变量 QT_SCALE_FACTOR（若手动设置）
//    QString scaleFactorEnv = qgetenv("QT_SCALE_FACTOR");
//    if(scaleFactorEnv.isEmpty())
//    {
//        qDebug() << "环境变量 QT_SCALE_FACTOR 找不到！" << "获取环境变量 DPR = " << 1.0;
//    }
//    else
//    {
//        qDebug() << "非空：scaleFactorEnv.toDouble() = " << scaleFactorEnv.toDouble();
//    }

//    QIcon icon(":/svgs/resources/edit-delete-symbolic.svg");
//    auto *engine = icon.pixmap(32, 32).paintEngine();
////    qDebug() << "QIconEngine type:" << typeid(*engine).name();
//    qDebug() << "*engine = " << engine;

//    QIcon icon = QIcon::fromTheme("edit-delete-symbolic");
//    qDebug() << "Icon is null? " << icon.isNull();



//    QString pluginPath = "/usr/lib/x86_64-linux-gnu/qt5/plugins/iconengines/libmyiconengineplugin.so"; // 替换为你的插件路径

//    QPluginLoader loader(pluginPath);
//    QObject *pluginInstance = loader.instance(); // 尝试加载插件

//    if (pluginInstance) {
//        qDebug() << "Plugin loaded successfully!";
//        QObject *pluginInstance = loader.instance();
//        qDebug() << "pluginInstance = " << pluginInstance;
//    }
//    else {
//        qDebug() << "Failed to load plugin:" << loader.errorString();
//    }


//    RenderWidget r(":/svgs/resources/edit-delete-symbolic.svg");
//    r.show();



//    qDebug() << "Library paths:" << QCoreApplication::libraryPaths();

//    QIcon iconPng(":/pngs/resources/pancake.png");

//    QIcon icon(":/svgs/resources/motor.svg");
//    QPushButton* btn = new QPushButton;
//    btn->setIcon(icon);
//    btn->show();

//    ScaleWiget w;
//    w.show();

//    QString svgPath = "/usr/share/icons/ukui-icon-theme-default/scalable/actions/go-previous-symbolic.svg";
//    QString str = "asdfASc";
//    qDebug() << qHash(svgPath);
//    qDebug() << qHash(str);
//    QString ret = QStringLiteral("Name:%1_%2_%3").arg(qHash(svgPath)).arg(str);
//    qDebug() << "ret = " << ret;





//    test_svg_icon_engine_single();
//    test_svg_icon_engine_all();
    QHash<int,QString>* svgCache = new QHash<int,QString>();
    svgCache->insert(1,"abc");
    qDebug() << svgCache->value(1);
    svgCache->insert(1,"def");
    qDebug() << svgCache->value(1);

    return a.exec();
}
